package CapaLogica;


import CapaAccesoBD.Conector;
import java.util.ArrayList;

public class MultiGaleria{
    /**
    * Inserta un registro de la galeria en la base de datos
    *
    * @param  pnombre  nombre de la galeria
    * @param  pdireccion direccion de la galeria
    * @param  ptelefono telefono de la galeria
    * @param  pfec_ina fecha de inaguracion
    * @param  pnom_encar nombre del encargado
    * @param  pdimension dimensiones
    * @return   el objeto Galeria
    */
	public  Galeria crear(String pnombre,String pdireccion,String ptelefono,String pfec_ina
                ,String pnom_encar, String pdimension) 
		throws Exception{
            
		Galeria pgaleria=null;
		String sql;
		sql = "INSERT INTO TGaleria "+
		"VALUES ('"+pnombre+"', '"+pdireccion+"', '"+ptelefono+"', '"+pfec_ina+"'"
                        + ", '"+pnom_encar+"', '"+pdimension+"');";
		try {
			Conector.getConector().ejecutarSQL(sql);
			pgaleria = new Galeria (pnombre, pdireccion,ptelefono,pfec_ina,pdimension,pnom_encar);
		}
		catch (Exception e) {
			throw new Exception ("Ocurrio un error a la hora de registrar.");
		}
		return pgaleria;
	}
	
    /**
    * Actualiza los datos de una galeria
    *
    * @param  pgaleria  objeto galeria
    */
	public  void actualizar(Galeria pgaleria) throws 
			java.sql.SQLException,Exception{
		String sql;
		sql = "UPDATE TGaleria "+
		"SET direccion='"+pgaleria.getDireccion()+"' "+
                ",telefono='"+pgaleria.getTelefono()+"' "+
                ",fechaInaguracion='"+pgaleria.getFechaInaguracon()+"' "+
                ",nombreEncargado='"+pgaleria.getNombreEncargado()+"' "+
                ",dimension='"+pgaleria.getDimension()+"' "+    
		"WHERE nombre='"+pgaleria.getNombre()+"';";
		try {
			Conector.getConector().ejecutarSQL(sql);
		}
		catch (Exception e) {
			throw new Exception ("La galeria no ha sido registrada");
		}
	}
    /**
    * Borra el registro de una galeria
    *
    * @param  pgaleria  objeto galeria
    */	
	public boolean borrar(Galeria pgaleria) throws 
			java.sql.SQLException,Exception{
                boolean result=false;        
		String sql;
		sql = "DELETE FROM TGaleria "+
		"WHERE nombre='"+pgaleria.getNombre()+"';";
		try {
			Conector.getConector().ejecutarSQL(sql);
                        result=true;
		}
		catch (Exception e) {
			throw new Exception ("Ocurrio un error al eliminar la galeria.");
		}
               return result;
	}
    /**
    * Busca una galeria por su nombre 
    * 
    * @param  pnomGaleria  nombre de la galeria
    * @return   galeria
    */	
        public Galeria buscarUnaGaleria(String pnomGaleria) throws Exception{
            Galeria objGaleria=null;
            String sql;
            java.sql.ResultSet rs;
            sql = "SELECT nombre, direccion, telefono, fechaInaguracion, nombreEncargado, dimension" + 
                  " FROM TGaleria " + 
                  "WHERE nombre = '"+pnomGaleria+"';";
            try{

                rs = Conector.getConector().ejecutarSQL(sql,true);
                if(rs.next()){
                    objGaleria = new Galeria (rs.getString("nombre"), rs.getString("direccion"), rs.getString("telefono"), 
                            rs.getString("fechaInaguracion"),rs.getString("dimension"), rs.getString("nombreEncargado"));
                }

            }catch (Exception e){ 
                throw new Exception ("No hay Galerias con esa nombre.");
            }
            rs.close();
            
            return objGaleria;
        }
    /**
    * Busca conicicendias de galerias por nombre
    * el nombre
    *
    * @param  pnomGaleria  nombre de la galeria
    * @return ArrayList<Galeria>
    */ 
        public ArrayList<Galeria> buscarVariasGalerias(String pnomGaleria) throws Exception{
            Galeria objGaleria;
            ArrayList<Galeria> listaGaleria;
            String sql;
            java.sql.ResultSet rs;
            sql = "SELECT nombre, direccion, telefono, fechaInaguracion, nombreEncargado, dimension" + 
                  " FROM TGaleria ";
                   if(pnomGaleria.length()>0){ 
                       sql+=" WHERE nombre like '%"+pnomGaleria+"%'";
                   }
                   sql+=";";
            try{
                rs = Conector.getConector().ejecutarSQL(sql,true);
                    listaGaleria = new ArrayList<>();
                if (rs.next()) {
                    do{
                        objGaleria = new Galeria (rs.getString("nombre"), rs.getString("direccion"), rs.getString("telefono"), 
                        rs.getString("fechaInaguracion"), rs.getString("nombreEncargado"), rs.getString("dimension"));

                        listaGaleria.add(objGaleria);
                    }while (rs.next());
                }
            }catch (Exception e){
                throw new Exception ("No hay Galerias con ese nombre.");
            }
            rs.close();
            
            return listaGaleria;
        } 
          
}